package licode.unisop.client.info;

import licode.unisop.client.vo.SopAuthContext;
import lombok.Data;
import lombok.Setter;

/**
 * 认证需要的信息
 *
 * @author WR
 */
@Data
public class SopAuthIn {
    /**
     * 授权类型（支持OAuth2授权模式）
     */
    private String grantType;

    /**
     * 授权范围
     */
    private String scope;

    /**
     * 授权码值
     */
    private String code;

    /**
     * 账号类型
     */
    String category;

    /**
     * 认证账号
     */
    String account;

    /**
     * 认证码
     */
    @Setter
    String authCode;

    /**
     * 认证类型
     */
    String authType;

    /**
     * 认证附加数据
     */
    String authData;

    /**
     * 授权模式（sso：单点登录；normal：普通登录）
     */
    private String authMode;

    /**
     * 是否需要验证码
     */
    private Integer noCaptcha;

    /**
     * 验证码
     */
    private String captchaKey;
    private String captchaCode;

    /**
     * IP地址
     */
    private String ipAddr;
    private String userBrowser;

    /**
     * 客户端IP
     */
    private String peerIp;

    /**
     * 扩展信息
     */
    private String extData;

    /**
     * 上下文信息
     */
    private SopAuthContext context;

    public SopAuthIn() {
        this.category = "";
        this.account = "";
        this.authCode = "";
        this.authType = "";
        this.authData = "";
        this.noCaptcha = 0;
    }
}
